package com.atguigu.web;

import com.atguigu.pojo.*;
import com.atguigu.service.*;
import com.atguigu.service.impl.*;
import com.atguigu.utils.WebUtils;
import com.google.gson.Gson;
import com.google.gson.internal.$Gson$Preconditions;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.List;

public class ProjectServlet extends BaseServlet {
    ProjectService projectService=new ProjectServiceImpl();
    ProjectModuleService projectModuleService=new ProjectModuleServiceImpl();
    ProjectModuleTypeService projectModuleTypeService=new ProjectModuleTypeServiceImpl();
    Gson gson=new Gson();

    protected void ajaxUpdateProject(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        if(request.getMethod().equals("GET")){
        }else{//应对post methed
            String id=request.getParameter("id");
            System.out.println("这是 ProjectServlet.ajaxUpdateProject 的提示,id 是: "+id);
            String name=request.getParameter("name");
            if (id.equals("")){//新增
                Project project=new Project(WebUtils.id(),name);
                projectService.addProject(project);
                response.getWriter().write("存入成功");
                return;
            }else {//update
                Project project=projectService.queryProjectByProjectId(id);
                if (project==null){
                    response.getWriter().write("没有这个projectId:"+id);
                }else{
                    project.setName(name);
                    projectService.updateProject(project);
                    response.getWriter().write("存入成功");
                    return;
                }
            }
//            if(request.getParameter("delete")!=null){
//                if(request.getParameter("delete").equals("true")){
//                    Container container=containerService.queryContainerById(id);
//                    //System.out.println(id);
//                    if(container==null){//容器id无效
//                        response.getWriter().write("容器id无效: "+id);
//                        return;
//                    }else{//容器id有效就进行删除
//                        //删除容器前,先放弃它使用的端口
//                        String[] portMaps=container.getPortMap().split(",");
//                        Service service=serviceService.queryServiceById(container.getServiceId());
//                        Project project=projectService.queryProjectById(container.getProjectId());
//                        for (String portMap:portMaps){
//                            String outPort=portMap.split(":")[0];
//                            service.setPorts(WebUtils.reducePortItem(service.getPorts(),outPort));
//                            project.setPorts(WebUtils.reducePortItem(project.getPorts(),outPort));
//                        }
//                        serviceService.updateService(service);
//                        projectService.updateProject(project);
//                        containerService.deleteContainerById(id);
//                        response.getWriter().write("删除成功");
//                        return;
//                    }//容器id有效就进行删除
//                }
//            }
//
//            if(id==null){
//                response.getWriter().write("projectId: "+projectId+" is null");
//                return;
//            }//处理projectId为空的情况
//            Project project=projectService.queryProjectById(projectId);
//            if(project==null){
//                response.getWriter().write("projectId: "+projectId+" not found");
//                return;
//            }//处理projectId传值异常的情况
//            List<Service> services=serviceService.queryServicesByProjectIdAndServiceName(projectId,"docker");
//            if(services.size()!=1){
//                response.getWriter().write("services 数量为: "+services.size()+" ,需确认名为docker的服务在 "+project.getName()+" 上有几个");
//                return;
//            }
//            Service service=services.iterator().next();
//            if(configType.equals("docker")){
//                //System.out.println("delete sign:"+request.getParameter("delete"));
//                String name=request.getParameter("name");
//                String imageVersion=request.getParameter("imageVersion");
//                String cpuMemory=request.getParameter("cpuMemory");
//                if(!cpuMemory.contains("/")){//cpuMemory 传参异常处理
//                    response.getWriter().write("cpuMemory传参异常: "+cpuMemory);
//                }//cpuMemory 传参异常处理
//                String[] strings=cpuMemory.split("/");
//                String cpu=strings[0];
//                String memory=strings[1];
//                String volume=request.getParameter("volume");
//                String ip=request.getParameter("ip");
//                String use=request.getParameter("use");
//                String endTime=request.getParameter("endTime");
//
//                if(id==""){//containerId为空,新增container
//                    Container container=new Container();
//                    String portMap=request.getParameter("portMap");//现在是add阶段
//                    String[] strings1=portMap.split(",");
//
//
//                    if(portMap!=""){
//                        String[] allNewPortArray=portMap.split(":|,");
//                        String newOutPorts="";
//                        if(allNewPortArray.length%2!=0){
//                            response.getWriter().write("端口对儿赋值异常:"+portMap);
//                            return;
//                        }
//                        for(Integer i=0;i<allNewPortArray.length;i++){
//                            if(i%2==0){
//                                if(project.getPorts().contains(allNewPortArray[i])){
//                                    response.getWriter().write(allNewPortArray[i]+"端口冲突,已在使用");
//                                    return;
//                                }else {
//                                    Integer count=0;
//                                    for(Integer n=0;n<allNewPortArray.length;n++){
//                                        if(allNewPortArray[n]==allNewPortArray[i]){
//                                            count++;
//                                        }
//                                    }
//                                    if(count==1){
//                                        newOutPorts=newOutPorts+","+allNewPortArray[i];
//                                    }else{
//                                        response.getWriter().write("外部端口重复 : "+allNewPortArray[i]);
//                                        return;
//                                    }
//                                }
//                            }
//                        }
//                        String newServicePorts2=WebUtils.addPortsItem(service.getPorts(),newOutPorts);
//                        service.setPorts(newServicePorts2);
//                        String newProjectPorts2=WebUtils.addPortsItem(project.getPorts(),newOutPorts);
//                        project.setPorts(newProjectPorts2);
//                    }
//                    container.setPortMap(portMap);
//                    //新端口号使用的逻辑-完
//
//                    container.setId(WebUtils.id());
//                    container.setProjectId(project.getId());
//                    container.setServiceId(service.getId());
//                    container.setName(name);
//                    container.setImageVersion(imageVersion);
//                    container.setCpu(cpu);
//                    container.setMemory(memory);
//                    container.setVolume(volume);
//                    container.setIp(ip);
////                    container.setPortMap(portMap);
//                    container.setUse(use);
//                    container.setEndTime(WebUtils.parseStringToDate(endTime));
//                    containerService.addContainer(container);
//                    response.getWriter().write("存入成功");
//                }else{//containerId不为空,update
//                    Container container=containerService.queryContainerById(id);
//                    if(container==null){//容器id无效
//                        response.getWriter().write("容器id无效: "+id);
//                        return;
//                    }else{//容器id有效,那就更新吧
//                        String portMap=request.getParameter("portMap");
//                        //开始处理 portMap
//                        if(container.getPortMap().equals(portMap)){
//
//                        }else{
//                            //1.删掉老的
//                            String[] allPortArray=container.getPortMap().split(":|,");
//                            String outPorts="";
//                            for(Integer i=0;i<allPortArray.length;i++){
//                                if(i%2==0){
//                                    outPorts=outPorts+","+allPortArray[i];
//                                }
//                            }
//                            String newServicePorts=WebUtils.reducePortItem(service.getPorts(),outPorts);
//                            service.setPorts(newServicePorts);
//                            String newProjectPorts=WebUtils.reducePortItem(project.getPorts(),outPorts);
//                            project.setPorts(newProjectPorts);
//
//                            container.setPortMap("");
//                            //2.加入新的
//                            if(portMap!=""){
//                                String[] allNewPortArray=portMap.split(":|,");
//                                String newOutPorts="";
//                                if(allNewPortArray.length%2!=0){
//                                    response.getWriter().write("端口对儿赋值异常:"+portMap);
//                                    return;
//                                }
//                                for(Integer i=0;i<allNewPortArray.length;i++){
//                                    if(i%2==0){
//                                        if(project.getPorts().contains(allNewPortArray[i])){
//                                            response.getWriter().write(allNewPortArray[i]+"端口冲突,已在使用");
//                                            return;
//                                        }else {
//                                            Integer count=0;
//                                            for(Integer n=0;n<allNewPortArray.length;n++){
//                                                if(allNewPortArray[n]==allNewPortArray[i]){
//                                                    count++;
//                                                }
//                                            }
//                                            if(count==1){
//                                                newOutPorts=newOutPorts+","+allNewPortArray[i];
//                                            }else{
//                                                response.getWriter().write("外部端口重复 : "+allNewPortArray[i]);
//                                                return;
//                                            }
//                                        }
//                                    }
//                                }
//                                String newServicePorts2=WebUtils.addPortsItem(service.getPorts(),newOutPorts);
//                                service.setPorts(newServicePorts2);
//                                String newProjectPorts2=WebUtils.addPortsItem(project.getPorts(),newOutPorts);
//                                project.setPorts(newProjectPorts2);
//                            }
//                            container.setPortMap(portMap);
//                        }
//                        //结束处理 portMap
//                        container.setName(name);
//                        container.setImageVersion(imageVersion);
//                        container.setCpu(cpu);
//                        container.setMemory(memory);
//                        container.setVolume(volume);
//                        container.setIp(ip);
//                        //container.setPortMap(portMap);//前面该删的删了,该加的加了,所以这里不需要再处理了
//                        container.setUse(use);
//                        container.setEndTime(WebUtils.parseStringToDate(endTime));
//                        containerService.updateContainer(container);
//                        response.getWriter().write("存入成功");
//                    }
//                }
//            }
//            serviceService.updateService(service);
//            projectService.updateProject(project);
        }//根据访问方式的不同,予以不同的处理方式,如果是get,那就给与配置服务的页面;如果是post,那就从参数中查询要配置内容
    }
    protected void ajaxDeleteProject(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        if(request.getMethod().equals("GET")){
        }else{//应对post methed
            String id=request.getParameter("id");
            System.out.println("这是 ProjectServlet.ajaxDeleteProject 的提示,id 是: "+id);
            String name=request.getParameter("name");
            if (id.equals("")){
                response.getWriter().write("必须有projectId");
                return;
            }else {
                Project project=projectService.queryProjectByProjectId(id);
                if (project==null){
                    response.getWriter().write("没有这个projectId:"+id);
                }else{
                    projectService.deleteProjectById(id);
                    response.getWriter().write("删除成功");
                    return;
                }
            }
//            if(request.getParameter("delete")!=null){
//                if(request.getParameter("delete").equals("true")){
//                    Container container=containerService.queryContainerById(id);
//                    //System.out.println(id);
//                    if(container==null){//容器id无效
//                        response.getWriter().write("容器id无效: "+id);
//                        return;
//                    }else{//容器id有效就进行删除
//                        //删除容器前,先放弃它使用的端口
//                        String[] portMaps=container.getPortMap().split(",");
//                        Service service=serviceService.queryServiceById(container.getServiceId());
//                        Project project=projectService.queryProjectById(container.getProjectId());
//                        for (String portMap:portMaps){
//                            String outPort=portMap.split(":")[0];
//                            service.setPorts(WebUtils.reducePortItem(service.getPorts(),outPort));
//                            project.setPorts(WebUtils.reducePortItem(project.getPorts(),outPort));
//                        }
//                        serviceService.updateService(service);
//                        projectService.updateProject(project);
//                        containerService.deleteContainerById(id);
//                        response.getWriter().write("删除成功");
//                        return;
//                    }//容器id有效就进行删除
//                }
//            }
//
//            if(id==null){
//                response.getWriter().write("projectId: "+projectId+" is null");
//                return;
//            }//处理projectId为空的情况
//            Project project=projectService.queryProjectById(projectId);
//            if(project==null){
//                response.getWriter().write("projectId: "+projectId+" not found");
//                return;
//            }//处理projectId传值异常的情况
//            List<Service> services=serviceService.queryServicesByProjectIdAndServiceName(projectId,"docker");
//            if(services.size()!=1){
//                response.getWriter().write("services 数量为: "+services.size()+" ,需确认名为docker的服务在 "+project.getName()+" 上有几个");
//                return;
//            }
//            Service service=services.iterator().next();
//            if(configType.equals("docker")){
//                //System.out.println("delete sign:"+request.getParameter("delete"));
//                String name=request.getParameter("name");
//                String imageVersion=request.getParameter("imageVersion");
//                String cpuMemory=request.getParameter("cpuMemory");
//                if(!cpuMemory.contains("/")){//cpuMemory 传参异常处理
//                    response.getWriter().write("cpuMemory传参异常: "+cpuMemory);
//                }//cpuMemory 传参异常处理
//                String[] strings=cpuMemory.split("/");
//                String cpu=strings[0];
//                String memory=strings[1];
//                String volume=request.getParameter("volume");
//                String ip=request.getParameter("ip");
//                String use=request.getParameter("use");
//                String endTime=request.getParameter("endTime");
//
//                if(id==""){//containerId为空,新增container
//                    Container container=new Container();
//                    String portMap=request.getParameter("portMap");//现在是add阶段
//                    String[] strings1=portMap.split(",");
//
//
//                    if(portMap!=""){
//                        String[] allNewPortArray=portMap.split(":|,");
//                        String newOutPorts="";
//                        if(allNewPortArray.length%2!=0){
//                            response.getWriter().write("端口对儿赋值异常:"+portMap);
//                            return;
//                        }
//                        for(Integer i=0;i<allNewPortArray.length;i++){
//                            if(i%2==0){
//                                if(project.getPorts().contains(allNewPortArray[i])){
//                                    response.getWriter().write(allNewPortArray[i]+"端口冲突,已在使用");
//                                    return;
//                                }else {
//                                    Integer count=0;
//                                    for(Integer n=0;n<allNewPortArray.length;n++){
//                                        if(allNewPortArray[n]==allNewPortArray[i]){
//                                            count++;
//                                        }
//                                    }
//                                    if(count==1){
//                                        newOutPorts=newOutPorts+","+allNewPortArray[i];
//                                    }else{
//                                        response.getWriter().write("外部端口重复 : "+allNewPortArray[i]);
//                                        return;
//                                    }
//                                }
//                            }
//                        }
//                        String newServicePorts2=WebUtils.addPortsItem(service.getPorts(),newOutPorts);
//                        service.setPorts(newServicePorts2);
//                        String newProjectPorts2=WebUtils.addPortsItem(project.getPorts(),newOutPorts);
//                        project.setPorts(newProjectPorts2);
//                    }
//                    container.setPortMap(portMap);
//                    //新端口号使用的逻辑-完
//
//                    container.setId(WebUtils.id());
//                    container.setProjectId(project.getId());
//                    container.setServiceId(service.getId());
//                    container.setName(name);
//                    container.setImageVersion(imageVersion);
//                    container.setCpu(cpu);
//                    container.setMemory(memory);
//                    container.setVolume(volume);
//                    container.setIp(ip);
////                    container.setPortMap(portMap);
//                    container.setUse(use);
//                    container.setEndTime(WebUtils.parseStringToDate(endTime));
//                    containerService.addContainer(container);
//                    response.getWriter().write("存入成功");
//                }else{//containerId不为空,update
//                    Container container=containerService.queryContainerById(id);
//                    if(container==null){//容器id无效
//                        response.getWriter().write("容器id无效: "+id);
//                        return;
//                    }else{//容器id有效,那就更新吧
//                        String portMap=request.getParameter("portMap");
//                        //开始处理 portMap
//                        if(container.getPortMap().equals(portMap)){
//
//                        }else{
//                            //1.删掉老的
//                            String[] allPortArray=container.getPortMap().split(":|,");
//                            String outPorts="";
//                            for(Integer i=0;i<allPortArray.length;i++){
//                                if(i%2==0){
//                                    outPorts=outPorts+","+allPortArray[i];
//                                }
//                            }
//                            String newServicePorts=WebUtils.reducePortItem(service.getPorts(),outPorts);
//                            service.setPorts(newServicePorts);
//                            String newProjectPorts=WebUtils.reducePortItem(project.getPorts(),outPorts);
//                            project.setPorts(newProjectPorts);
//
//                            container.setPortMap("");
//                            //2.加入新的
//                            if(portMap!=""){
//                                String[] allNewPortArray=portMap.split(":|,");
//                                String newOutPorts="";
//                                if(allNewPortArray.length%2!=0){
//                                    response.getWriter().write("端口对儿赋值异常:"+portMap);
//                                    return;
//                                }
//                                for(Integer i=0;i<allNewPortArray.length;i++){
//                                    if(i%2==0){
//                                        if(project.getPorts().contains(allNewPortArray[i])){
//                                            response.getWriter().write(allNewPortArray[i]+"端口冲突,已在使用");
//                                            return;
//                                        }else {
//                                            Integer count=0;
//                                            for(Integer n=0;n<allNewPortArray.length;n++){
//                                                if(allNewPortArray[n]==allNewPortArray[i]){
//                                                    count++;
//                                                }
//                                            }
//                                            if(count==1){
//                                                newOutPorts=newOutPorts+","+allNewPortArray[i];
//                                            }else{
//                                                response.getWriter().write("外部端口重复 : "+allNewPortArray[i]);
//                                                return;
//                                            }
//                                        }
//                                    }
//                                }
//                                String newServicePorts2=WebUtils.addPortsItem(service.getPorts(),newOutPorts);
//                                service.setPorts(newServicePorts2);
//                                String newProjectPorts2=WebUtils.addPortsItem(project.getPorts(),newOutPorts);
//                                project.setPorts(newProjectPorts2);
//                            }
//                            container.setPortMap(portMap);
//                        }
//                        //结束处理 portMap
//                        container.setName(name);
//                        container.setImageVersion(imageVersion);
//                        container.setCpu(cpu);
//                        container.setMemory(memory);
//                        container.setVolume(volume);
//                        container.setIp(ip);
//                        //container.setPortMap(portMap);//前面该删的删了,该加的加了,所以这里不需要再处理了
//                        container.setUse(use);
//                        container.setEndTime(WebUtils.parseStringToDate(endTime));
//                        containerService.updateContainer(container);
//                        response.getWriter().write("存入成功");
//                    }
//                }
//            }
//            serviceService.updateService(service);
//            projectService.updateProject(project);
        }//根据访问方式的不同,予以不同的处理方式,如果是get,那就给与配置服务的页面;如果是post,那就从参数中查询要配置内容
    }
    protected void listProject(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        List<Project> projects=projectService.queryProjects();
        request.setAttribute("projects",projects);

        List<ProjectModule> projectModules=projectModuleService.queryProjectModules();
        request.setAttribute("projectModules",projectModules);

        List<ProjectModuleType> projectModuleTypes=projectModuleTypeService.queryProjectModuleTypes();
        request.setAttribute("projectModuleTypes",projectModuleTypes);

        request.getRequestDispatcher("/pages/client/project.jsp").forward(request,response);
    }
    protected void getProjectModules(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        String projectId=request.getParameter("projectId");
        Project project=projectService.queryProjectByProjectId(projectId);
        String projectModuleTypeName=request.getParameter("projectModuleType");
        ProjectModuleType projectModuleType=projectModuleTypeService.queryProjectModuleTypeByName(projectModuleTypeName);

        //System.out.println(project+projectModuleTypeName);
        if(project==null){
            if(projectId==null){
                List<ProjectModule> projectModules = projectModuleService.queryProjectModulesByProjectModuleTypeId(projectModuleType.getId());
                response.getWriter().write(gson.toJson(projectModules));
                return;
            }
            response.getWriter().write("没找到这个projectId:"+projectId);
            return;
        }else {
            List<ProjectModule> projectModules=projectModuleService.queryProjectModulesByProjectIdAndProjectModuleTypeId(projectId,projectModuleType.getId());
            //System.out.println(projectModules);
            response.getWriter().write(gson.toJson(projectModules));
            return;
        }
    }
    protected void getProjectModulesByProjectIdAndProjectModuleTypeName(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        String projectId=request.getParameter("projectId");
        Project project=projectService.queryProjectByProjectId(projectId);
        String projectModuleTypeName=request.getParameter("projectModuleTypeName");
        ProjectModuleType projectModuleType=projectModuleTypeService.queryProjectModuleTypeByName(projectModuleTypeName);

        //System.out.println(project+projectModuleTypeName);
        if(project==null){
            if(projectId==null){
                List<ProjectModule> projectModules = projectModuleService.queryProjectModulesByProjectModuleTypeId(projectModuleType.getId());
                response.getWriter().write(gson.toJson(projectModules));
                return;
            }
            response.getWriter().write("没找到这个projectId:"+projectId);
            return;
        }else {
            List<ProjectModule> projectModules=projectModuleService.queryProjectModulesByProjectIdAndProjectModuleTypeId(projectId,projectModuleType.getId());
            //System.out.println(projectModules);
            response.getWriter().write(gson.toJson(projectModules));
            return;
        }
    }
    protected void getProjectModulesByProjectIdAndProjectModuleTypeId(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        String projectId=request.getParameter("projectId");
        String projectModuleTypeId=request.getParameter("projectModuleTypeId");

        List<ProjectModule> projectModules=projectModuleService.queryProjectModulesByProjectIdAndProjectModuleTypeId(projectId,projectModuleTypeId);
        response.getWriter().write(gson.toJson(projectModules));
        return;

    }
    protected void getProjectModulesByProjectModuleId(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        String projectId=request.getParameter("projectId");
        Project project=projectService.queryProjectByProjectId(projectId);
        String projectModuleTypeName=request.getParameter("projectModuleType");
        ProjectModuleType projectModuleType=projectModuleTypeService.queryProjectModuleTypeByName(projectModuleTypeName);

        if(project==null){
            if(projectId==null){
                List<ProjectModule> projectModules = projectModuleService.queryProjectModulesByProjectModuleTypeId(projectModuleType.getId());
                response.getWriter().write(gson.toJson(projectModules));
                return;
            }
            response.getWriter().write("没找到这个projectId:"+projectId);
            return;
        }else {
            List<ProjectModule> projectModules=projectModuleService.queryProjectModulesByProjectIdAndProjectModuleTypeId(projectId,projectModuleType.getId());
            response.getWriter().write(gson.toJson(projectModules));
            return;
        }
//        String projectId=request.getParameter("projectId");
//        Project project=projectService.queryProjectByProjectId(projectId);
//        if(project==null){
//            response.getWriter().write("没有这个projectId:"+projectId);
//            return;
//        }else {
//            List<ProjectModule> projectModules=projectModuleService.queryProjectModulesByProjectId(projectId);
//            HashMap<String,String> hashMap=new HashMap<>();
//            for(ProjectModule projectModule:projectModules){
//                hashMap.put(projectModule.getId(),projectModule.getName());
//            }
//            System.out.println(gson.toJson(hashMap));
//        }
    }
    protected void getProjectsByProjectModuleType(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        String projectModuleTypeName=request.getParameter("projectModuleType");

        List<ProjectModule> projectModules = projectModuleService.queryProjectModulesByProjectModuleTypeName(projectModuleTypeName);
        LinkedHashSet<Project> projects=new LinkedHashSet<>();
        for(ProjectModule projectModule:projectModules){
            Project project=projectService.queryProjectByProjectId(projectModule.getProjectId());
            projects.add(project);
        }
        response.getWriter().write(gson.toJson(projects));
        return;
    }
    protected void getProjectsByProjectModuleTypeId(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        String projectModuleTypeId=request.getParameter("projectModuleTypeId");

        List<ProjectModule> projectModules = projectModuleService.queryProjectModulesByProjectModuleTypeId(projectModuleTypeId);
        LinkedHashSet<Project> projects=new LinkedHashSet<>();
        for(ProjectModule projectModule:projectModules){
            Project project=projectService.queryProjectByProjectId(projectModule.getProjectId());
            projects.add(project);
        }
        response.getWriter().write(gson.toJson(projects));
        return;
    }
    protected void ajaxUpdateProjectModule(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        if(request.getMethod().equals("GET")){
        }else{//应对post methed
            String projectModuleId=request.getParameter("id");
            String projectId=request.getParameter("projectId");
            String projectModuleName=request.getParameter("projectModuleName");
            String codeRepository=request.getParameter("codeRepository");
            String projectModuleTypeId=request.getParameter("projectModuleTypeId");
            String deployPullRootUrl=request.getParameter("deployPullRootUrl");

            if (projectModuleId==""){//新增
                ProjectModule projectModule=new ProjectModule(WebUtils.id(),projectId,projectModuleName,codeRepository,projectModuleTypeId,deployPullRootUrl);
                projectModuleService.addProjectModule(projectModule);
            }else {//更新
                ProjectModule projectModule=projectModuleService.queryProjectModuleById(projectModuleId);
                if(projectModule==null){
                    response.getWriter().write("没找到这个projectModuleId:"+projectModuleId);
                    return;
                }else {
                    projectModule.setProjectId(projectId);
                    projectModule.setName(projectModuleName);
                    projectModule.setCodeRepository(codeRepository);
                    projectModule.setProjectModuleTypeId(projectModuleTypeId);
                    projectModule.setDeployPullRootUrl(deployPullRootUrl);

                    projectModuleService.updateProjectModule(projectModule);
                }
                //System.out.print(projectModule);
            }
            response.getWriter().write("存入成功");
            return;
        }//根据访问方式的不同,予以不同的处理方式,如果是get,那就给与配置服务的页面;如果是post,那就从参数中查询要配置内容
    }
    protected void ajaxDeleteProjectModule(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        if(request.getMethod().equals("GET")){
        }else{//应对post methed
            String id=request.getParameter("id");
            System.out.println("这是 ProjectModuleServlet.ajaxDeleteProjectModule 的提示,id 是: "+id);
            if (id.equals("")){
                response.getWriter().write("必须有projectModuleId");
                return;
            }else {
                ProjectModule projectModule=projectModuleService.queryProjectModuleById(id);
                if (projectModule==null){
                    response.getWriter().write("没有这个projectModuleId:"+id);
                }else{
                    projectModuleService.deleteProjectModuleById(id);
                    response.getWriter().write("删除成功");
                    return;
                }
            }
        }//根据访问方式的不同,予以不同的处理方式,如果是get,那就给与配置服务的页面;如果是post,那就从参数中查询要配置内容
    }
    protected void ajaxUpdateProjectModuleType(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        if(request.getMethod().equals("GET")){
        }else{//应对post methed
            String projectModuleTypeId=request.getParameter("id");
            String projectModuleTypeName=request.getParameter("projectModuleTypeName");

            if (projectModuleTypeId==""){//新增
                ProjectModuleType projectModuleType=new ProjectModuleType(WebUtils.id(),projectModuleTypeName);
                projectModuleTypeService.addProjectModuleType(projectModuleType);
            }else {//更新
                ProjectModuleType projectModuleType=projectModuleTypeService.queryProjectModuleTypeById(projectModuleTypeId);
                if(projectModuleType==null){
                    response.getWriter().write("没找到这个projectModuleTypeId:"+projectModuleTypeId);
                    return;
                }else {
                    projectModuleType.setName(projectModuleTypeName);
                    projectModuleTypeService.updateProjectModuleType(projectModuleType);
                }
                //System.out.print(projectModuleType);
            }
            response.getWriter().write("存入成功");
            return;
        }//根据访问方式的不同,予以不同的处理方式,如果是get,那就给与配置服务的页面;如果是post,那就从参数中查询要配置内容
    }
    protected void ajaxDeleteProjectModuleType(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        if(request.getMethod().equals("GET")){
        }else{//应对post methed
            String id=request.getParameter("id");
            System.out.println("这是 ProjectModuleTypeServlet.ajaxDeleteProjectModuleType 的提示,id 是: "+id);
            if (id.equals("")){
                response.getWriter().write("必须有projectModuleTypeId");
                return;
            }else {
                ProjectModuleType projectModuleType=projectModuleTypeService.queryProjectModuleTypeById(id);
                if (projectModuleType==null){
                    response.getWriter().write("没有这个projectModuleTypeId:"+id);
                }else{
                    projectModuleTypeService.deleteProjectModuleTypeById(id);
                    response.getWriter().write("删除成功");
                    return;
                }
            }
        }//根据访问方式的不同,予以不同的处理方式,如果是get,那就给与配置服务的页面;如果是post,那就从参数中查询要配置内容
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println(Thread.currentThread().getStackTrace()[1].getFileName()+":"
                +Thread.currentThread().getStackTrace()[1].getLineNumber()+":"
                +"已经进入doget方法,"+request.getParameter("action")+" 是action名");
        doPost(request,response);//把dopost方法优化到baseServlet抽象类中去了,使得可以按照request action执行特定的方法
        //由于action判断行为在dopost中,所以在doget中执行一下dopost就可以执行判断了,从而执行特定的方法了.
    }
}
